-- ###################################################################### -- #=========================== PRECONDITIONS ==========================# -- ###################################################################### --====================< Check if actor has required money >====================-- function inf_trader_buy_transitions1() return mlr_utils.have_money(7000) end function inf_trader_buy_transitions2() return mlr_utils.have_money(11000) end function inf_trader_buy_transitions3() return mlr_utils.have_money(9000) end function inf_trader_buy_transitions4() return mlr_utils.have_money(9000) end function inf_trader_buy_transitions5() return mlr_utils.have_money(30000) end function inf_trader_buy_transitions6() return mlr_utils.have_money(35000) end function have_money_to_tech_yard_guid_marsh() return mlr_utils.have_money(800) end function have_money_to_marsh_post_guid_marsh() return mlr_utils.have_money(300) end function have_money_to_marsh_pump_water_guid_marsh() return mlr_utils.have_money(500) end function have_money_to_garbage_guid_bar() return mlr_utils.have_money(700) end function have_money_to_military_guid_bar() return mlr_utils.have_money(1000) end function have_money_to_jupiter_underground_guid_jup() return mlr_utils.have_money(1500) end function have_money_to_zaton_guid_jup() return mlr_utils.have_money(2000) end function have_money_to_red_forest_guid_jup() return mlr_utils.have_money(2500) end function have_money_darkscape_guid_military() return mlr_utils.have_money(3000) end function have_money_to_escape_guid_bar() return mlr_utils.have_money(3000) end function have_money_to_yantar_guid_bar() return mlr_utils.have_money(3500) end function have_money_to_pripyat_guid_jup() return mlr_utils.have_money(4000) end function have_money_to_escp_guid_mil() return mlr_utils.have_money(4500) end function have_money_agroprom_guid_military() return mlr_utils.have_money(5000) end function have_money_to_pripyat_guid_zat() return mlr_utils.have_money(5000) end function have_money_to_jupiter_guid_bar() return mlr_utils.have_money(6000) end function have_pri_special_trader_mlr_2() return mlr_utils.have_money(6500) end function have_mil_to_yant_on_heli2() return mlr_utils.have_money(7000) end function have_pri_special_trader_mlr_3() return mlr_utils.have_money(7000) end function have_money_to_radar_guid_pri() return mlr_utils.have_money(8000) end function have_pri_special_trader_mlr_1() return mlr_utils.have_money(8000) end function have_pri_special_trader_mlr_4() return mlr_utils.have_money(9500) end function have_mil_to_yant_on_heli() return mlr_utils.have_money(10000) end function have_pri_special_trader_mlr_5() return mlr_utils.have_money(11000) end function have_pri_special_trader_mlr_8() return mlr_utils.have_money(14000) end function have_pri_special_trader_mlr_6() return mlr_utils.have_money(17000) end function have_pri_special_trader_mlr_9() return mlr_utils.have_money(17000) end function have_pri_special_trader_mlr_12() return mlr_utils.have_money(18000) end function have_pri_special_trader_mlr_7() return mlr_utils.have_money(19000) end function have_pri_special_trader_mlr_10() return mlr_utils.have_money(20000) end function have_pri_special_trader_mlr_11() return mlr_utils.have_money(24000) end function have_money_to_stancia_guid_pri() return mlr_utils.have_money(12000) end function have_pri_special_trader_mlr_17() return mlr_utils.have_money(50000) end function have_pri_special_trader_mlr_15() return mlr_utils.have_money(65000) end function have_pri_special_trader_mlr_16() return mlr_utils.have_money(70000) end function have_pri_special_trader_mlr_14() return mlr_utils.have_money(75000) end function have_pri_special_trader_mlr_13() return mlr_utils.have_money(100000) end function have_pri_special_trader_mlr_18() return mlr_utils.have_money(150000) end function have_money_povars_ammo_pkm_100() return mlr_utils.have_money(7000) end function have_information_about_stash_barmen() return mlr_utils.have_money(15000) end function totaliz_1() return mlr_utils.have_money(1000) end function totaliz_2() return mlr_utils.have_money(2500) end function totaliz_5() return mlr_utils.have_money(5000) end --====================< Check if actor has required items >====================-- function has_wpn_protecta_task_noah_1(first_speaker, second_speaker) return mlr_utils.have_item('wpn_protecta', 1) end function has_1_11_af_medusa_kmb(first_speaker, second_speaker) return mlr_utils.have_item('af_medusa_lead_box', 1) end function have_blackbox_mlr(first_speaker, second_speaker) return mlr_utils.have_item('blackbox_mlr', 1) end function have_pri_a18_barter_9_19(first_speaker, second_speaker) return mlr_utils.have_item('ammo_9x19_fmj', 100) end function have_pri_a18_barter_5_56(first_speaker, second_speaker) return mlr_utils.have_item('ammo_5.56x45_ss190', 100) end function have_pri_a18_barter_f1(first_speaker, second_speaker) return mlr_utils.have_item('grenade_f1', 20) end function have_pri_a18_barter_rgd5(first_speaker, second_speaker) return mlr_utils.have_item('grenade_rgd5', 10) end function have_duty_patch_15(first_speaker, second_speaker) return mlr_utils.have_item('dolg_patch', 15) end function have_duty_patch_20(first_speaker, second_speaker) return mlr_utils.have_item('dolg_patch', 20) end function have_duty_patch_50(first_speaker, second_speaker) return mlr_utils.have_item('dolg_patch', 50) end function have_duty_patch_65(first_speaker, second_speaker) return mlr_utils.have_item('dolg_patch', 65) end function have_duty_patch_100(first_speaker, second_speaker) return mlr_utils.have_item('dolg_patch', 100) end function have_csky_patch_for_lottery_10(first_speaker, second_speaker) return mlr_utils.have_item('csky_patch', 25) end function have_freedom_patch_for_lottery_10(first_speaker, second_speaker) return mlr_utils.have_item('freedom_patch', 25) end function have_stalker_patch_for_lottery_10(first_speaker, second_speaker) return mlr_utils.have_item('stalker_patch', 25) end function have_ecolog_patch_for_lottery_10(first_speaker, second_speaker) return mlr_utils.have_item('ecolog_patch', 25) end function have_bandit_patch_for_lottery_10(first_speaker, second_speaker) return mlr_utils.have_item('bandit_patch', 25) end function have_duty_patch_for_lottery_10(first_speaker, second_speaker) return mlr_utils.have_item('dolg_patch', 25) end function have_monolith_patch_for_lottery_10(first_speaker, second_speaker) return mlr_utils.have_item('monolith_patch', 25) end function have_army_patch_for_lottery_10(first_speaker, second_speaker) return mlr_utils.have_item('army_patch', 25) end function have_csky_patch_for_lottery_50(first_speaker, second_speaker) return mlr_utils.have_item('csky_patch', 50) end function have_freedom_patch_for_lottery_50(first_speaker, second_speaker) return mlr_utils.have_item('freedom_patch', 50) end function have_stalker_patch_for_lottery_50(first_speaker, second_speaker) return mlr_utils.have_item('stalker_patch', 50) end function have_ecolog_patch_for_lottery_50(first_speaker, second_speaker) return mlr_utils.have_item('ecolog_patch', 50) end function have_bandit_patch_for_lottery_50(first_speaker, second_speaker) return mlr_utils.have_item('bandit_patch', 50) end function have_duty_patch_for_lottery_50(first_speaker, second_speaker) return mlr_utils.have_item('dolg_patch', 50) end function have_monolith_patch_for_lottery_50(first_speaker, second_speaker) return mlr_utils.have_item('monolith_patch', 50) end function have_army_patch_for_lottery_50(first_speaker, second_speaker) return mlr_utils.have_item('army_patch', 50) end function have_vodka5(first_speaker, second_speaker) return mlr_utils.have_item('vodka', 5) end function have_vodka10(first_speaker, second_speaker) return mlr_utils.have_item('vodka', 10) end function have_vodka20(first_speaker, second_speaker) return mlr_utils.have_item('vodka', 20) end function have_vodka15(first_speaker, second_speaker) return mlr_utils.have_item('vodka', 15) end function has_lx8_history_document() return (mlr_utils.have_item('lx8_history_documents') or mlr_utils.have_item('lx8_history_2_documents') or mlr_utils.have_item('lx8_history_3_documents')) end function has_controller_brain() return mlr_utils.have_item('mutant_part_controller_glass') end function has_mlr_x8_documents() return mlr_utils.have_item('mlr_x8_documents') end function has_af_electra_flash() return mlr_utils.have_item('af_electra_flash') end function has_af_electra_moonlight() return mlr_utils.have_item('af_electra_moonlight') end function has_af_soul() return mlr_utils.have_item('af_soul') end function has_af_vyvert() return mlr_utils.have_item('af_vyvert') end --====================< Check if actor can afford items >====================-- function can_afford_extra_item(txt) local extra_ini = ini_file("plugins\\mlr.ltx") local item = extra_ini:r_string_ex("extra_items", txt .. "_section") or "" local count = extra_ini:r_float_ex("extra_items", txt .. "_count") or 0 if item and (item ~= "") and ini_sys:section_exist(item) and (count > 0) then local cost = mlr_utils.get_cost_sect(item, count) if db.actor:money() >= cost then return true end end return false end function can_afford_extra_med_1() return can_afford_extra_item("med_1") end function can_afford_extra_med_2() return can_afford_extra_item("med_2") end function can_afford_extra_med_3() return can_afford_extra_item("med_3") end function can_afford_extra_med_4() return can_afford_extra_item("med_4") end function can_afford_extra_med_5() return can_afford_extra_item("med_5") end function can_afford_extra_food_1() return can_afford_extra_item("food_1") end function can_afford_extra_food_2() return can_afford_extra_item("food_2") end function can_afford_extra_food_3() return can_afford_extra_item("food_3") end function can_afford_extra_food_4() return can_afford_extra_item("food_4") end function can_afford_extra_food_5() return can_afford_extra_item("food_5") end function can_afford_extra_ammo_1() return can_afford_extra_item("ammo_1") end function can_afford_extra_ammo_2() return can_afford_extra_item("ammo_2") end function can_afford_extra_ammo_3() return can_afford_extra_item("ammo_3") end function can_afford_extra_ammo_4() return can_afford_extra_item("ammo_4") end function can_afford_extra_ammo_5() return can_afford_extra_item("ammo_5") end function can_afford_extra_ammo_6() return can_afford_extra_item("ammo_6") end function can_afford_extra_ammo_7() return can_afford_extra_item("ammo_7") end function can_afford_extra_ammo_8() return can_afford_extra_item("ammo_8") end function can_afford_extra_ammo_9() return can_afford_extra_item("ammo_9") end function can_afford_extra_ammo_10() return can_afford_extra_item("ammo_10") end function can_afford_extra_ammo_11() return can_afford_extra_item("ammo_11") end function can_afford_extra_ammo_12() return can_afford_extra_item("ammo_12") end function can_afford_extra_ammo_13() return can_afford_extra_item("ammo_13") end function can_afford_extra_ammo_14() return can_afford_extra_item("ammo_14") end function can_afford_extra_ammo_15() return can_afford_extra_item("ammo_15") end function can_afford_extra_ammo_16() return can_afford_extra_item("ammo_16") end function can_afford_extra_ammo_17() return can_afford_extra_item("ammo_17") end function can_afford_extra_ammo_18() return can_afford_extra_item("ammo_18") end function can_afford_extra_ammo_19() return can_afford_extra_item("ammo_19") end --====================< AWR >====================-- function awr_if_actor_has_1000(first_speaker, second_speaker) return mlr_utils.have_money(1000) end function awr_not_on_table(first_speaker, second_speaker) local npc = dialogs.who_is_npc(first_speaker, second_speaker) local npc_name = npc:section() if not (db.actor:has_info(string.format("awr_%s_on_table", npc_name))) then bind_awr.dout('dialogs', "Infoportion awr_%s_on_table not exist", npc_name) return true end end function toolkit_task_done_3(first_speaker, second_speaker) local npc = dialogs.who_is_npc(first_speaker, second_speaker) local npc_sec = npc:section() if npc_sec and db.actor:has_info(npc_sec .. "_upgrade_tier_3") then return true end return false end function not_toolkit_task_done_3(first_speaker, second_speaker) return not toolkit_task_done_3(first_speaker, second_speaker) end --====================< Special >====================-- function check_debt (first_speaker, second_speaker) local npc = dialogs.who_is_npc(first_speaker, second_speaker) get_debt_npc(npc) if mlr_utils.load_var("debt_" .. tostring(npc:id())) then return true end return false end function check_no_debt (first_speaker, second_speaker) local npc = dialogs.who_is_npc(first_speaker, second_speaker) get_debt_npc(npc) if (not mlr_utils.load_var("debt_" .. tostring(npc:id()))) then return true end return false end function have_money_debt (first_speaker, second_speaker) local npc = dialogs.who_is_npc(first_speaker, second_speaker) local money = mlr_utils.load_var("debt_" .. tostring(npc:id())) money = money + (money * 0.5) if (first_speaker:money() >= money) then return true end return false end function request_extra_items_on (first_speaker, second_speaker) local actor = dialogs.who_is_actor(first_speaker, second_speaker) local rank = ranks.get_obj_rank_name(actor) if (rank == "professional" or rank == "veteran" or rank == "expert" or rank == "master" or rank == "legend") then return true else return false end end function request_extra_items_off (first_speaker, second_speaker) local actor = dialogs.who_is_actor(first_speaker, second_speaker) local rank = ranks.get_obj_rank_name(actor) if (rank == "novice" or rank == "trainee" or rank == "experienced") then return true else return false end end function request_to_fly(actor) local rank = ranks.get_obj_rank_name(actor) if (rank == "professional" or rank == "veteran" or rank == "expert" or rank == "master" or rank == "legend") then return true else return false end end -- ###################################################################### -- #============================== ACTIONS =============================# -- ###################################################################### --====================< Take money from actor >====================-- function give_money_to_jupiter_guid_bar(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 6000) end function sell_money_to_tech_yard_guid_marsh(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 800) end function give_information_about_stash_barmen(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 15000) end function sell_money_povars_ammo_pkm_100(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 7000) end function give_pri_special_trader_mlr_1(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 8000) end function give_pri_special_trader_mlr_2(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 6500) end function give_pri_special_trader_mlr_3(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 7000) end function give_pri_special_trader_mlr_4(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 9500) end function give_pri_special_trader_mlr_5(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 11000) end function give_pri_special_trader_mlr_6(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 17000) end function give_pri_special_trader_mlr_7(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 19000) end function give_pri_special_trader_mlr_8(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 14000) end function give_pri_special_trader_mlr_9(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 17000) end function give_pri_special_trader_mlr_10(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 20000) end function give_pri_special_trader_mlr_11(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 24000) end function give_pri_special_trader_mlr_12(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 18000) end function give_pri_special_trader_mlr_13(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 100000) end function give_pri_special_trader_mlr_14(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 75000) end function give_pri_special_trader_mlr_15(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 65000) end function give_pri_special_trader_mlr_16(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 70000) end function give_pri_special_trader_mlr_17(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 50000) end function give_pri_special_trader_mlr_18(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 150000) end function sell_money_darkscape_guid_military(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 3000) end function sell_money_agroprom_guid_military(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 5000) end function give_mil_to_yant_on_heli2(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 7000) end function give_mil_to_yant_on_heli(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 10000) end function sell_money_to_marsh_pump_water_guid_marsh(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 500) end function sell_money_to_marsh_post_guid_marsh(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 300) end function sell_money_to_radar_guid_pri(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 8000) end function sell_money_to_pripyat_guid_zat(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 5000) end function sell_money_to_stancia_guid_pri(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 12000) end function sell_money_to_zaton_guid_jup(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 2000) end function sell_money_to_pripyat_guid_jup(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 4000) end function sell_money_to_red_forest_guid_jup(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 2500) end function sell_money_to_jupiter_underground_guid_jup(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 1500) end function sell_money_to_yantar_guid_bar(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 3500) end function sell_money_to_military_guid_bar(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 1000) end function sell_money_to_garbage_guid_bar(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 700) end function sell_money_to_escape_guid_bar(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 3000) end function sell_money_to_escp_guid_mil(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 4500) end function sell_money_to_jupiter_guid_bar(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 6000) end function sell_money_povars_ammo_pkm_100(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 7000) end function inf_trader_buy_transitions11(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 7000) end function inf_trader_buy_transitions22(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 11000) end function inf_trader_buy_transitions33(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 9000) end function inf_trader_buy_transitions44(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 9000) end function inf_trader_buy_transitions55(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 30000) end function inf_trader_buy_transitions66(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 35000) end function take_totaliz_1(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 1000) end function take_totaliz_2(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 2500) end function take_totaliz_5(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 5000) end function take_cost_of_extra_item (first_speaker, second_speaker, txt) local extra_ini = ini_file("plugins\\mlr.ltx") local item = extra_ini:r_string_ex("extra_items", txt .. "_section") or "" local count = extra_ini:r_float_ex("extra_items", txt .. "_count") or 0 if item and (item ~= "") and ini_sys:section_exist(item) and (count > 0) then local cost = mlr_utils.get_cost_sect(item, count) if db.actor:money() >= cost then dialogs.relocate_money_from_actor(first_speaker, second_speaker, cost) end end end function take_cost_of_extra_med_1(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "med_1") end function take_cost_of_extra_med_2(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "med_2") end function take_cost_of_extra_med_3(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "med_3") end function take_cost_of_extra_med_4(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "med_4") end function take_cost_of_extra_med_5(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "med_5") end function take_cost_of_extra_food_1(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "food_1") end function take_cost_of_extra_food_2(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "food_2") end function take_cost_of_extra_food_3(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "food_3") end function take_cost_of_extra_food_4(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "food_4") end function take_cost_of_extra_food_5(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "food_5") end function take_cost_of_extra_ammo_1(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "ammo_1") end function take_cost_of_extra_ammo_2(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "ammo_2") end function take_cost_of_extra_ammo_3(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "ammo_3") end function take_cost_of_extra_ammo_4(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "ammo_4") end function take_cost_of_extra_ammo_5(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "ammo_5") end function take_cost_of_extra_ammo_6(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "ammo_6") end function take_cost_of_extra_ammo_7(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "ammo_7") end function take_cost_of_extra_ammo_8(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "ammo_8") end function take_cost_of_extra_ammo_9(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "ammo_9") end function take_cost_of_extra_ammo_10(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "ammo_10") end function take_cost_of_extra_ammo_11(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "ammo_11") end function take_cost_of_extra_ammo_12(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "ammo_12") end function take_cost_of_extra_ammo_13(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "ammo_13") end function take_cost_of_extra_ammo_14(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "ammo_14") end function take_cost_of_extra_ammo_15(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "ammo_15") end function take_cost_of_extra_ammo_16(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "ammo_16") end function take_cost_of_extra_ammo_17(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "ammo_17") end function take_cost_of_extra_ammo_18(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "ammo_18") end function take_cost_of_extra_ammo_19(first_speaker, second_speaker) take_cost_of_extra_item(first_speaker, second_speaker, "ammo_19") end --====================< Take items from actor >====================-- function take_wpn_protecta_noah_task_1(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "wpn_protecta",1) end function take_af_electra_flash(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "af_electra_flash",1) end function take_af_electra_moonlight(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "af_electra_moonlight",1) end function take_af_soul(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "af_soul",1) end function take_af_vyvert(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "af_vyvert",1) end function take_blackbox_mlr(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "blackbox_mlr",1) end function take_pri_a18_barter_9_19(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "ammo_9x19_fmj",100) end function take_pri_a18_barter_5_56(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "ammo_5.56x45_ss190",100) end function take_pri_a18_barter_f1(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "grenade_f1",20) end function take_pri_a18_barter_rgd5(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "grenade_rgd5",10) end function reward_for_lx8_history_document(first_speaker, second_speaker) if mlr_utils.have_item('lx8_history_documents') then dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "lx8_history_documents") dialogs.relocate_money_to_actor(first_speaker, second_speaker, 7000) end if mlr_utils.have_item('lx8_history_2_documents') then dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "lx8_history_2_documents") dialogs.relocate_money_to_actor(first_speaker, second_speaker, 7000) end if mlr_utils.have_item('lx8_history_3_documents') then dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "lx8_history_3_documents") dialogs.relocate_money_to_actor(first_speaker, second_speaker, 7000) end end function take_duty_patch_15(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "dolg_patch",15) end function take_duty_patch_20(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "dolg_patch",20) end function take_duty_patch_50(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "dolg_patch",50) end function take_duty_patch_65(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "dolg_patch",65) end function take_duty_patch_100(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "dolg_patch",100) end function take_part_controller_glass(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "mutant_part_controller_glass") end function take_vodka5(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "vodka",5) end function take_vodka10(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "vodka",10) end function take_vodka20(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "vodka",20) end function take_vodka15(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "vodka",15) end function take_csky_patch_for_lottery_10(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "csky_patch",25) end function take_duty_patch_for_lottery_10(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "dolg_patch",25) end function take_freedom_patch_for_lottery_10(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "freedom_patch",25) end function take_stalker_patch_for_lottery_10(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "stalker_patch",25) end function take_ecolog_patch_for_lottery_10(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "ecolog_patch",25) end function take_bandit_patch_for_lottery_10(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "bandit_patch",25) end function take_monolith_patch_for_lottery_10(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "monolith_patch",25) end function take_army_patch_for_lottery_10(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "army_patch",25) end function take_csky_patch_for_lottery_50(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "csky_patch",50) end function take_duty_patch_for_lottery_50(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "dolg_patch",50) end function take_freedom_patch_for_lottery_50(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "freedom_patch",50) end function take_stalker_patch_for_lottery_50(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "stalker_patch",50) end function take_ecolog_patch_for_lottery_50(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "ecolog_patch",50) end function take_bandit_patch_for_lottery_50(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "bandit_patch",50) end function take_monolith_patch_for_lottery_50(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "monolith_patch",50) end function take_army_patch_for_lottery_50(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "army_patch",50) end --====================< Give money to actor >====================-- function take_money_from_army_blackbox(first_speaker, second_speaker) dialogs.relocate_money_to_actor(first_speaker, second_speaker, 5000) end function take_money_from_haron_blackbox(first_speaker, second_speaker) dialogs.relocate_money_to_actor(first_speaker, second_speaker, 5000) end function take_money_from_owl_blackbox(first_speaker, second_speaker) dialogs.relocate_money_to_actor(first_speaker, second_speaker, 7500) end function take_money_from_lidership_blackbox(first_speaker, second_speaker) dialogs.relocate_money_to_actor(first_speaker, second_speaker, 10000) end function total_reward_1000(actor,npc,p) dialogs.relocate_money(db.actor,math.random(tonumber(2000),tonumber(4000)),"in") end function total_reward_2500(actor,npc,p) dialogs.relocate_money(db.actor,math.random(tonumber(3500),tonumber(6000)),"in") end function total_reward_5000(actor,npc,p) dialogs.relocate_money(db.actor,math.random(tonumber(7000),tonumber(15000)),"in") end function give_money_5000(first_speaker, second_speaker) dialogs.relocate_money_to_actor(first_speaker, second_speaker, 5000) end function give_money_7500(first_speaker, second_speaker) dialogs.relocate_money_to_actor(first_speaker, second_speaker, 7500) end function give_money_10000 (first_speaker, second_speaker) dialogs.relocate_money_to_actor(first_speaker, second_speaker, 10000) end function give_money_15000 (first_speaker, second_speaker) dialogs.relocate_money_to_actor(first_speaker, second_speaker, 15000) end function give_money_20000 (first_speaker, second_speaker) dialogs.relocate_money_to_actor(first_speaker, second_speaker, 20000) end --====================< Give items to actor >====================-- function give_staff_about_dog_marsh_part_two(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "bread", 3) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "conserva", 2) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "vodka", 2) end function give_antirad_from_fanat(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "vodka") end function give_freedom_set_mlr(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "svoboda_light_outfit") dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "wpn_mp5") end function give_det_adva_from_fanat(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "detector_simple") end function give_lead_box_from_fanat(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "lead_box") end function give_bolts_from_fanat(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "bolt",5) end function take_pri_special_trader_mlr_2(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "wpn_sig220_nimble") end function take_pri_special_trader_mlr_3(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "wpn_usp_nimble") end function take_pri_special_trader_mlr_4(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "wpn_mp5_nimble") end function take_pri_special_trader_mlr_5(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "wpn_spas12_nimble") end function take_pri_special_trader_mlr_6(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "wpn_protecta_nimble") end function take_pri_special_trader_mlr_7(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "wpn_groza_nimble") end function take_pri_special_trader_mlr_8(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "wpn_g36_nimble") end function take_pri_special_trader_mlr_9(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "wpn_fn2000_nimble") end function take_pri_special_trader_mlr_10(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "wpn_vintorez_nimble") end function take_pri_special_trader_mlr_11(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "wpn_svu_nimble") end function take_pri_special_trader_mlr_12(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "wpn_svd_nimble") end function take_pri_special_trader_mlr_13(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "monolith_exo_outfit") end function take_pri_special_trader_mlr_14(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "merc_exo_outfit") end function take_pri_special_trader_mlr_15(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "bandit_exo_outfit") end function take_pri_special_trader_mlr_16(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "monolith_scientific_outfit") end function take_pri_special_trader_mlr_17(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "merc_scientific_outfit") end function take_pri_special_trader_mlr_18(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "wpn_gauss") end function take_pri_special_trader_mlr_1(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "wpn_desert_eagle_nimble") end function give_sso_from_ashot_mlr(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "svoboda_scientific_outfit") end function give_wpn_svd_from_ashot_mlr(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "wpn_svd_nimble") end function give_seo_from_ashot_mlr(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "svoboda_exo_outfit") end function lottery_present_low_1(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "af_electra_sparkler") end function lottery_present_low_2(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "af_gravi") end function lottery_present_low_3(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "af_blood") end function lottery_present_low_4(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "af_electra_flash") end function lottery_present_low_5(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "af_medusa") end function lottery_present_low_6(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "af_cristall") dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "af_electra_moonlight") end function lottery_present_medium_1(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "af_night_star") end function lottery_present_medium_2(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "af_vyvert") end function lottery_present_medium_3(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "af_dummy_glassbeads") end function lottery_present_medium_4(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "af_soul") dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "af_glass") end function lottery_present_hight_1(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "af_gold_fish") end function lottery_present_hight_2(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "af_fireball") end function lottery_present_hight_3(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "af_baloon") end function lottery_present_medium_5(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "af_electra_moonlight") dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "wpn_lr300") dialogs.relocate_item_section(second_speaker, "ammo_5.56x45_ap", "in",3) dialogs.relocate_item_section(second_speaker, "ammo_9x39_pab9", "in",3) end function lottery_present_medium_6(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "af_gravi") dialogs.relocate_item_section(second_speaker, "medkit_scientic", "in",5) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "wpn_colt1911") end function lottery_present_medium_7(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "af_vyvert") dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "detector_elite") dialogs.relocate_item_section(second_speaker, "drug_anabiotic", "in",2) end function lottery_present_hight_4(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "wpn_vintorez") dialogs.relocate_item_section(second_speaker, "ammo_9x39_ap", "in",6) end function lottery_present_hight_5(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "merc_scientific_outfit") dialogs.relocate_item_section(second_speaker, "drug_anabiotic", "in",2) dialogs.relocate_item_section(second_speaker, "medkit_scientic", "in",5) end function give_pri_a18_barter_9_19(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "ammo_9x18_pmm", "in",100) end function give_pri_a18_barter_5_56(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "ammo_5.45x39_fmj", "in",100) end function give_pri_a18_barter_f1(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "ammo_m209", "in",20) end function give_pri_a18_barter_rgd5(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "ammo_og-7b", "in",3) end function give_svd_ammo_from_ashot_mlr(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "ammo_7.62x54_7h1", "in",5) end function give_ammo_nato_from_ashot_mlr(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "ammo_5.56x45_ss190", "in",7) end function give_ammo_m209_from_ashot_mlr(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "ammo_m209", "in",20) end function give_army_grugs(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "medkit_army", "in",5) end function give_ecolog_grugs(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "medkit_scientic", "in",4) end function give_veles(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "detector_elite", "in",1) end function give_anabionic_drug(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "drug_anabiotic", "in",2) end function give_extra_item (first_speaker, second_speaker, txt) local extra_ini = ini_file("plugins\\mlr.ltx") local item = extra_ini:r_string_ex("extra_items", txt .. "_section") or "" local count = extra_ini:r_float_ex("extra_items", txt .. "_count") or 0 if item and (item ~= "") and ini_sys:section_exist(item) and (count > 0) then dialogs.relocate_item_section(second_speaker, item, "in", count) end end function give_extra_med_1(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "med_1") end function give_extra_med_2(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "med_2") end function give_extra_med_3(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "med_3") end function give_extra_med_4(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "med_4") end function give_extra_med_5(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "med_5") end function give_extra_food_1(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "food_1") end function give_extra_food_2(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "food_2") end function give_extra_food_3(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "food_3") end function give_extra_food_4(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "food_4") end function give_extra_food_5(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "food_5") end function give_extra_ammo_1(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "ammo_1") end function give_extra_ammo_2(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "ammo_2") end function give_extra_ammo_3(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "ammo_3") end function give_extra_ammo_4(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "ammo_4") end function give_extra_ammo_5(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "ammo_5") end function give_extra_ammo_6(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "ammo_6") end function give_extra_ammo_7(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "ammo_7") end function give_extra_ammo_8(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "ammo_8") end function give_extra_ammo_9(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "ammo_9") end function give_extra_ammo_10(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "ammo_10") end function give_extra_ammo_11(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "ammo_11") end function give_extra_ammo_12(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "ammo_12") end function give_extra_ammo_13(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "ammo_13") end function give_extra_ammo_14(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "ammo_14") end function give_extra_ammo_15(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "ammo_15") end function give_extra_ammo_16(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "ammo_16") end function give_extra_ammo_17(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "ammo_17") end function give_extra_ammo_18(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "ammo_18") end function give_extra_ammo_19(first_speaker, second_speaker) give_extra_item(first_speaker, second_speaker, "ammo_19") end --====================< Travel to map >====================-- function ds_soviet_store(actor,npc,p) mlr_utils.change_lvl('ds_soviet_store') end function zat_trash_station(actor,npc,p) mlr_utils.change_lvl('zat_trash_station') end function mil_to_yant_on_heli(actor,npc,p) mlr_utils.change_lvl('mil_to_yant_on_heli') end function jup_guid_bandit_cont(actor,npc,p) mlr_utils.change_lvl('jup_guid_bandit_cont') end function red_forest_guid_mon(actor,npc,p) mlr_utils.change_lvl('red_forest_guid_mon') end function l11_pripyat_guid_mon(actor,npc,p) mlr_utils.change_lvl('l11_pripyat_guid_mon') end function pripyat_guid_mon(actor,npc,p) mlr_utils.change_lvl('pripyat_guid_mon') end function jupiter_guid_mon(actor,npc,p) mlr_utils.change_lvl('jupiter_guid_mon') end function escp_guid_mil_speed(actor,npc,p) mlr_utils.change_lvl('escp_guid_mil_speed') end function agroprom_guid_military(actor,npc,p) mlr_utils.change_lvl('agroprom_guid_military') end function escape_guid_military(actor,npc,p) mlr_utils.change_lvl('escape_guid_military') end function darkscape_guid_military(actor,npc,p) mlr_utils.change_lvl('darkscape_guid_military') end function jup_bunker_guid(actor,npc,p) mlr_utils.change_lvl('jup_bunker_guid') end function agroprom_guid(actor,npc,p) mlr_utils.change_lvl('agroprom_guid') end function marsh_guid(actor,npc,p) mlr_utils.change_lvl('marsh_guid') end function escape_village_guid(actor,npc,p) mlr_utils.change_lvl('escape_village_guid') end function trucks_cemetery_guid(actor,npc,p) mlr_utils.change_lvl('trucks_cemetery_guid') end function stancia_guid(actor,npc,p) mlr_utils.change_lvl('stancia_guid') end function pripyat_2_guid(actor,npc,p) mlr_utils.change_lvl('pripyat_2_guid') end function radar_guid(actor,npc,p) mlr_utils.change_lvl('radar_guid') end function jupiter_underground_2_guid(actor,npc,p) mlr_utils.change_lvl('jupiter_underground_2_guid') end function zaton_guid(actor,npc,p) mlr_utils.change_lvl('zaton_guid') end function pripyat_guid(actor,npc,p) mlr_utils.change_lvl('pripyat_guid') end function l11_pripyat_guid(actor,npc,p) mlr_utils.change_lvl('l11_pripyat_guid') end function red_forest_guid(actor,npc,p) mlr_utils.change_lvl('red_forest_guid') end function l05_bar_guid(actor,npc,p) mlr_utils.change_lvl('l05_bar_guid') end function jupiter_underground_guid(actor,npc,p) mlr_utils.change_lvl('jupiter_underground_guid') end function yantar_guid(actor,npc,p) mlr_utils.change_lvl('yantar_guid') end function military_guid(actor,npc,p) mlr_utils.change_lvl('military_guid') end function garbage_guid(actor,npc,p) mlr_utils.change_lvl('garbage_guid') end function escape_guid(actor,npc,p) mlr_utils.change_lvl('escape_guid') end function jupiter_guid(actor,npc,p) mlr_utils.change_lvl('jupiter_guid') end function yantar_guid_from_freedom_base(actor,npc,p) mlr_utils.change_lvl('yantar_guid_from_freedom_base') end --====================< Increase good-will >====================-- function goodwill_for_blackbox_monolith_reward(a,b) xr_effects.inc_faction_goodwill_to_actor(db.actor, nil, {"monolith", 100}) end function goodwill_for_blackbox_army_reward(a,b) xr_effects.inc_faction_goodwill_to_actor(db.actor, nil, {"army", 100}) end function goodwill_for_blackbox_csky_reward(a,b) xr_effects.inc_faction_goodwill_to_actor(db.actor, nil, {"csky", 100}) end function goodwill_for_blackbox_freedom_reward(a,b) xr_effects.inc_faction_goodwill_to_actor(db.actor, nil, {"freedom", 100}) end function goodwill_for_blackbox_killer_reward(a,b) xr_effects.inc_faction_goodwill_to_actor(db.actor, nil, {"killer", 100}) end --====================< Spawn items >====================-- function spawn_1_11_af_medusa_kmb(first_speaker, second_speaker) alife(alife_pripyat):create("af_medusa",vector():set(-249.45230102539,-13.491371154785,-29.858497619629),12990,386) end function spawn_povars_12_70(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "ammo_12x70_buck", 3) end function spawn_povars_ammo_pkm_100(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "ammo_pkm_100", 3) end function spawn_povars_9_18_6(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "ammo_9x18_fmj", 4) end function spawn_povars_5_45_3(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "ammo_5.45x39_fmj", 2) end function spawn_povars_5_45_6(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "ammo_5.45x39_fmj", 4) end function spawn_povars_7_62(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "ammo_7.62x54_7h1", 1) end function spawn_povars_berill(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "specops_outfit", 1) end function spawn_lx8_history_douemnts(first_speaker, second_speaker) xr_effects.spawn_item_at_pos(first_speaker, second_speaker, {"lx8_history_documents"}) xr_effects.spawn_item_at_pos(first_speaker, second_speaker, {"lx8_history_2_documents"}) xr_effects.spawn_item_at_pos(first_speaker, second_speaker, {"lx8_history_3_documents"}) end function give_recipe_cooking_1(first_speaker, second_speaker) xr_effects.give_letter(first_speaker, second_speaker, {"recipe_cooking_1"}) end --====================< Technical >====================-- local community = { ["stalker"] = "Free Stalkers", ["monolith"] = "Monolith", ["csky"] = "Clear Sky", ["army"] = "Military", ["bandit"] = "Bandits", ["killer"] = "Mercenaries", ["ecolog"] = "Ecologists", ["dolg"] = "Duty", ["freedom"] = "Freedom", ["renegade"] = "Renegade", ["greh"] = "Sin", ["isg"] = "UNISG", ["zombied"] = "Zombies", ["trader"] = "Traders" } function show_goodwill_change_message(comm, comm_n, comm_e, is_gain) -- modified cause MLR is retarded if (ui_options.get("gameplay/general/show_tip_reputation")) and comm then --printf("-show_goodwill_change_message %s",comm) local str_title = game.translate_string("st_news_goodwill_update_title") local str_intro = is_gain and game.translate_string("st_news_goodwill_intro_1") or game.translate_string("st_news_goodwill_intro_lose_1") local str_comm_txt = is_gain and game.translate_string("st_news_goodwill_main_1") or game.translate_string("st_news_goodwill_main_lose_1") local str_comm = game.translate_string("st_dyn_news_comm_" .. comm .. "_8") if comm_n then local str_comm_n = game.translate_string("st_dyn_news_comm_" .. comm_n .. "_8") str_comm = str_comm .. " " .. game.translate_string("st_dyn_news_and") .. " " .. str_comm_n end local msg = str_intro .. " " .. strformat(str_comm_txt, str_comm) if comm_e then local str_comm_e = game.translate_string("st_dyn_news_comm_" .. comm_e .. "_8") local str_comm_e_txt = game.translate_string("st_news_goodwill_enemy_1") msg = msg .. " " .. strformat(str_comm_e_txt, str_comm_e) end db.actor:give_game_news(str_title, msg, "ui_inGame2_PD_storonnik_ravnovesiya", 5000, 10000) end end function control() local chance = 0.5 if (math.random() < chance) then --if (not has_alife_info("completionist") and not has_alife_info("sim_stalker_help_harder")) then if (db.actor:money() >= 500) then message_robbery() end --end end end function message_robbery() local amount = math.floor(db.actor:money()*math.random(25,50)/100) db.actor:give_money(-amount) db.actor:give_game_news("You were robbed while sleeping and have lost: ", game.translate_string(tostring(amount)), "ui_inGame2_Dengi_otdani", 0, 3000) end function actor_set_freedom(actor, npc) set_actor_true_community("freedom") news_manager.send_tip(db.actor, game.translate_string("st_actor_in_freedom")) xr_effects.inc_faction_goodwill_to_actor(db.actor, nil, {"freedom", 5000}) end function actor_set_stalker(actor, npc) set_actor_true_community("stalker") news_manager.send_tip(db.actor, game.translate_string("st_actor_in_stalker")) end function merc_pri_grifon_mlr_task_target(task_id,field,p,tsk) if (field == "target") then if (task_id == "esc_m_trader_task_1") then if (tsk.stage == 1) then return tsk.task_giver_id end local smart = SIMBOARD.smarts_by_names["pri_b304_monsters_smart_terrain"] local target_id = db.actor and load_var(db.actor,"merc_pri_grifon_mlr_task_3_target_id") local se_target = target_id and alife_object(target_id) if (se_target and smart.position:distance_to_sqr(se_target.position) > 2500) then return target_id end return smart and smart.id or nil end end end function reward_for_blackbox_army() game_statistics.increment_reputation(150) end function marsh_post_guid(first_speaker, second_speaker) level.add_pp_effector ("fade_in.ppe", 200, false) db.actor:set_actor_position(vector():set(-294.81405639648,0.71730107069016,21.673492431641),3145,153) end function marsh_pump_water_guid(first_speaker, second_speaker) level.add_pp_effector ("fade_in.ppe", 200, false) db.actor:set_actor_position(vector():set(-7.9008584022522,0.46835023164749,-38.745407104492),138848,20) end function marsh_old_church_guid(first_speaker, second_speaker) level.add_pp_effector ("fade_in.ppe", 200, false) db.actor:set_actor_position(vector():set(314.69299316406,0.8691970705986,-134.10293579102),344628, 222) end function marsh_tech_yard_guid(first_speaker, second_speaker) level.add_pp_effector ("fade_in.ppe", 200, false) db.actor:set_actor_position(vector():set(381.63909912109,2.7934539318085,243.89410400391),392419, 98) end function teleport_for_totaliz(first_speaker, second_speaker) local box = get_story_object("bar_arena_inventory_box") if (box) then local function transfer_object_item(item) db.actor:transfer_item(item, box) end db.actor:inventory_for_each(transfer_object_item) level.add_pp_effector ("fade_in.ppe", 200, false) db.actor:set_actor_position(vector():set(139.61517333984,-13.390427589417,100.86038208008),37564,1710) end local spawn_items = {} if has_alife_info("totaliz_money_has_gone") then table.insert(spawn_items, "wpn_binoc") end local k,v = 0,0 for k,v in pairs(spawn_items) do alife_create_item(v, db.actor) end end --====================< Give Task >====================-- function give_look_for_cs_history_part_4() task_manager.get_task_manager():give_task("task_look_for_cs_history_part_4") end function give_look_for_cs_history_part_3() task_manager.get_task_manager():give_task("task_look_for_cs_history_part_3") end function give_look_for_cs_history_part_2() task_manager.get_task_manager():give_task("task_look_for_cs_history_part_2") end function give_look_for_cs_history_part_1() task_manager.get_task_manager():give_task("task_look_for_cs_history_part_1") end function give_task_fanat_training_1() task_manager.get_task_manager():give_task("task_fanat_training_1") end function give_task_fanat_training_2() task_manager.get_task_manager():give_task("task_fanat_training_2") -- Spawn Crystal artefact in Fanatic's stash local sim = alife() local box_id for i=1,65534 do local se_obj = sim:object(i) if se_obj and (se_obj:name() == "secret_fanat") then box_id = i break end end local se_arty = box_id and alife_create("af_ball", VEC_ZERO, 0, 0, box_id, false) if (se_arty) then alife():register(se_arty) end end function give_task_fanat_training_3() task_manager.get_task_manager():give_task("task_fanat_training_3") end function give_gar_4_2_zombie_mlr_squad() task_manager.get_task_manager():give_task("gar_4_2_zombie_mlr_squad") end function give_task_noah_1() task_manager.get_task_manager():give_task("task_noah_1") end function give_task_noah_2() task_manager.get_task_manager():give_task("task_noah_2") end --====================< News and Info >====================-- function total_battle_1_random() db.actor:give_info_portion(random_choice("total_fight_1_1", "total_fight_1_2", "total_fight_1_3", "total_fight_1_4", "total_fight_1_5")) end function total_battle_3_random() db.actor:give_info_portion(random_choice("total_fight_3_1", "total_fight_3_2", "total_fight_3_3", "total_fight_3_4", "total_fight_3_5")) end function total_battle_4_random() db.actor:give_info_portion(random_choice("total_fight_4_1", "total_fight_4_2", "total_fight_4_3", "total_fight_4_4", "total_fight_4_5")) end function total_battle_5_random() db.actor:give_info_portion(random_choice("total_fight_5_1", "total_fight_5_2", "total_fight_5_3")) end function total_battle_6_random() db.actor:give_info_portion(random_choice("total_fight_6_1", "total_fight_6_2", "total_fight_6_3")) end function total_battle_7_random() db.actor:give_info_portion(random_choice("total_fight_7_1", "total_fight_7_2", "total_fight_7_3")) end function total_battle_9_random() db.actor:give_info_portion(random_choice("total_fight_9_1", "total_fight_9_2", "total_fight_9_3")) end function disable_pri_special_trader_mlr_1(first_speaker, second_speaker) db.actor:disable_info_portion("pri_special_trader_mlr_order_in_process") db.actor:disable_info_portion("pri_special_trader_mlr_order_is_ready") db.actor:disable_info_portion("order_pri_mlr_is_done") db.actor:disable_info_portion("cancel_new_orders_pri_mlr") end --====================< Notes >====================-- function unlock_note_spirit() SendScriptCallback("actor_on_interaction", "notes", nil, "note_from_spirit") end function unlock_note_aslan() SendScriptCallback("actor_on_interaction", "notes", nil, "note_from_aslan") end function unlock_note_trunk() SendScriptCallback("actor_on_interaction", "notes", nil, "note_from_trunk") end function unlock_note_meeker() SendScriptCallback("actor_on_interaction", "notes", nil, "note_from_meeker") end function unlock_note_grifon() SendScriptCallback("actor_on_interaction", "notes", nil, "note_from_grifon") end --====================< AWR >====================-- function awr_give_1000(first_speaker, second_speaker) dialogs.relocate_money_from_actor(first_speaker, second_speaker, 1000) end function awr_timer_msg_on(first_speaker, second_speaker) local npc = dialogs.who_is_npc(first_speaker, second_speaker) local npc_name = npc:section() actor_menu.set_item_news('success', 'detail', "st_awr_timer_msg_on") bind_awr.Lamp(npc_name, true) bind_awr.dout('dialogs', "Start timer") db.actor:give_info_portion(string.format('awr_%s_access', npc_name)) if db.actor:has_info(string.format('awr_%s_access', npc_name)) then bind_awr.dout('dialogs', "Infoportion awr_%s_access received", npc_name) end end --====================< Debt >====================-- function add_debt_5000 (first_speaker, second_speaker) local npc = dialogs.who_is_npc(first_speaker, second_speaker) local money = 5000 mlr_utils.save_var("debt_" .. tostring(npc:id()),money) end function add_debt_10000 (first_speaker, second_speaker) local npc = dialogs.who_is_npc(first_speaker, second_speaker) local money = 10000 mlr_utils.save_var("debt_" .. tostring(npc:id()),money) end function add_debt_15000 (first_speaker, second_speaker) local npc = dialogs.who_is_npc(first_speaker, second_speaker) local money = 15000 mlr_utils.save_var("debt_" .. tostring(npc:id()),money) end function add_debt_20000 (first_speaker, second_speaker) local npc = dialogs.who_is_npc(first_speaker, second_speaker) local money = 20000 mlr_utils.save_var("debt_" .. tostring(npc:id()),money) end function pay_off_debt (first_speaker, second_speaker) local npc = dialogs.who_is_npc(first_speaker, second_speaker) local money = mlr_utils.load_var("debt_" .. tostring(npc:id())) money = money + (money * 0.5) dialogs.relocate_money_from_actor(first_speaker, second_speaker, money) local money = nil mlr_utils.save_var("debt_" .. tostring(npc:id()),nil) end -- ###################################################################### -- #================================ TEXT ==============================# -- ###################################################################### --====================< Extra equipment >====================-- function buy_extra_item_dialog(txt) local extra_ini = ini_file("plugins\\mlr.ltx") local item = extra_ini:r_string_ex("extra_items", txt .. "_section") or "" local count = extra_ini:r_float_ex("extra_items", txt .. "_count") or 0 if item and (item ~= "") and ini_sys:section_exist(item) and (count > 0) then local name = ui_item.get_sec_name(item) local cost = mlr_utils.get_cost_sect(item, count) local str = strformat(game.translate_string("buy_extra_items_txt"), name, cost) return str end return "" end function buy_extra_med_1() return buy_extra_item_dialog("med_1") end function buy_extra_med_2() return buy_extra_item_dialog("med_2") end function buy_extra_med_3() return buy_extra_item_dialog("med_3") end function buy_extra_med_4() return buy_extra_item_dialog("med_4") end function buy_extra_med_5() return buy_extra_item_dialog("med_5") end function buy_extra_food_1() return buy_extra_item_dialog("food_1") end function buy_extra_food_2() return buy_extra_item_dialog("food_2") end function buy_extra_food_3() return buy_extra_item_dialog("food_3") end function buy_extra_food_4() return buy_extra_item_dialog("food_4") end function buy_extra_food_5() return buy_extra_item_dialog("food_5") end function buy_extra_ammo_1() return buy_extra_item_dialog("ammo_1") end function buy_extra_ammo_2() return buy_extra_item_dialog("ammo_2") end function buy_extra_ammo_3() return buy_extra_item_dialog("ammo_3") end function buy_extra_ammo_4() return buy_extra_item_dialog("ammo_4") end function buy_extra_ammo_5() return buy_extra_item_dialog("ammo_5") end function buy_extra_ammo_6() return buy_extra_item_dialog("ammo_6") end function buy_extra_ammo_7() return buy_extra_item_dialog("ammo_7") end function buy_extra_ammo_8() return buy_extra_item_dialog("ammo_8") end function buy_extra_ammo_9() return buy_extra_item_dialog("ammo_9") end function buy_extra_ammo_10() return buy_extra_item_dialog("ammo_10") end function buy_extra_ammo_11() return buy_extra_item_dialog("ammo_11") end function buy_extra_ammo_12() return buy_extra_item_dialog("ammo_12") end function buy_extra_ammo_13() return buy_extra_item_dialog("ammo_13") end function buy_extra_ammo_14() return buy_extra_item_dialog("ammo_14") end function buy_extra_ammo_15() return buy_extra_item_dialog("ammo_15") end function buy_extra_ammo_16() return buy_extra_item_dialog("ammo_16") end function buy_extra_ammo_17() return buy_extra_item_dialog("ammo_17") end function buy_extra_ammo_18() return buy_extra_item_dialog("ammo_18") end function buy_extra_ammo_19() return buy_extra_item_dialog("ammo_19") end local meeker_order = { ["DS"] = 8000, ["SIG"] = 6500, ["USP"] = 7000, ["MP"] = 9500, ["SPAS"] = 11000, ["STRIKE"] = 17000, ["STORM"] = 19000, ["G36"] = 14000, ["FN"] = 17000, ["VSS"] = 20000, ["SVY"] = 24000, ["SVD"] = 18000, ["ECZ_MON"] = 100000, ["ECZ_KIL"] = 75000, ["ECZ_BAN"] = 65000, ["SCI_MON"] = 70000, ["SCI_KIL"] = 50000, ["GAUSS"] = 150000, } function pri_special_trader_mlr3_1() for info,money in pairs(meeker_order) do if has_alife_info("pri_special_trader_mlr_" .. info) then return strformat(game.translate_string("pri_special_trader_mlr3_1"), money) end end return "" end --====================< Debt >====================-- local debt_npc -- script text don't take speakers as parameters, we need to use hacks function get_debt_npc(npc) debt_npc = npc end function debt_register_0 () local str = strformat(game.translate_string("debt_register_0"), debt_npc:character_name()) return str end function debt_register_7 () local money = mlr_utils.load_var("debt_" .. tostring(debt_npc:id())) money = money + (money * 0.5) local str = strformat(game.translate_string("debt_register_7"), money) return str end function debt_pay_off_2 () local money = mlr_utils.load_var("debt_" .. tostring(debt_npc:id())) money = money + (money * 0.5) local str = strformat(game.translate_string("debt_pay_off_2"), money) return str end function st_debt_no_trade() local str = game.translate_string("st_debt_no_trade_1") return str end